package com.xbongbong.paas.service;

import com.xbongbong.paas.pojo.dto.ListGroupExplainDTO;
import com.xbongbong.paas.pojo.dto.ListGroupListDTO;
import com.xbongbong.paas.pojo.dto.ListGroupAddDTO;
import com.xbongbong.paas.pojo.dto.ListGroupDeleteDTO;
import com.xbongbong.paas.pojo.dto.ListGroupGetDTO;
import com.xbongbong.paas.pojo.dto.ListGroupSortDTO;
import com.xbongbong.paas.pojo.dto.ListGroupUpdateDTO;
import com.xbongbong.paas.pojo.vo.GroupListVO;
import com.xbongbong.paas.pojo.vo.ListGroupAddVO;
import com.xbongbong.paas.pojo.vo.ListGroupDeleteVO;
import com.xbongbong.paas.pojo.vo.ListGroupExplainVO;
import com.xbongbong.paas.pojo.vo.ListGroupGetVO;
import com.xbongbong.paas.pojo.vo.ListGroupSortVO;
import com.xbongbong.paas.pojo.vo.ListGroupUpdateVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.script.pojo.vo.ScriptVO;

/**
 * @author: wufeng
 * @date: 2018/9/7 15:29
 * @desrcption: 分组管理
 */
public interface PaasListGroupService {
    /**
     * 查询分组管理列表
     * @param groupListDTO
     * @return
     * @throws XbbException
     */
    GroupListVO list(ListGroupListDTO groupListDTO) throws XbbException;

    /**
     * 添加分组
     * @param listGroupAddDTO
     * @return
     * @throws XbbException
     */
    ListGroupAddVO add(ListGroupAddDTO listGroupAddDTO) throws XbbException;

    /**
     * 更新列表分组
     * @param listGroupUpdateDTO
     * @return
     * @throws XbbException
     */
    ListGroupUpdateVO update(ListGroupUpdateDTO listGroupUpdateDTO) throws XbbException;

    /**
     * 删除分组
     * @param listGroupDeleteDTO
     * @return
     * @throws XbbException
     */
    ListGroupDeleteVO delete(ListGroupDeleteDTO listGroupDeleteDTO) throws XbbException;

    /**
     * 获取详情
     * @param listGroupGetDTO
     * @return
     * @throws XbbException
     */
    ListGroupGetVO get(ListGroupGetDTO listGroupGetDTO) throws XbbException;

    /**
     * 获取当前表单的适合列表分组字段列表
     * @param listGroupExplainDTO
     * @return
     * @throws XbbException
     */
    ListGroupExplainVO getExplain(ListGroupExplainDTO listGroupExplainDTO) throws XbbException;

    /**
     * 分组排序
     * @param listGroupSortDTO
     * @return
     * @throws XbbException
     */
    ListGroupSortVO sort(ListGroupSortDTO listGroupSortDTO) throws XbbException;

    /**
     * 公海分组
     * @param groupListDTO
     * @return
     */
    GroupListVO publicList(ListGroupListDTO groupListDTO) throws XbbException;
    
    ScriptVO deleteByGroup() throws XbbException;


}
